//
//  XJChildCommentView.m
//  XinJiangMall
//
//  Created by RaoBo on 2018/6/7.
//  Copyright © 2018年 Tzyang. All rights reserved.
//

#import "XJChildCommentView.h"

#import "XJChildCommentCell.h"

#import "XJTieZiDetailModel.h" // XJTieZiDetailChildCommentModel

// bug: 设置背景颜色、背景图片 无效
@interface XJChildCommentView()<UITableViewDelegate,UITableViewDataSource>

@property(nonatomic, strong) UITableView *tableView;

@end

@implementation XJChildCommentView

#pragma mark - 一 init
- (instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self setupView];
        
//        self.backgroundColor = [UIColor greenColor]; // 不起作用
    }
    return self;
}
- (void)setupView {
 
    [self addSubview:self.tableView];
    
    self.tableView.sd_layout.widthIs(KWidth - 65)
    .leftEqualToView(self)
    .topEqualToView(self);
}


#pragma mark - 二 lazy
- (UITableView *)tableView {
    if (!_tableView) {
        _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:(UITableViewStylePlain)];
        _tableView.delegate = self;
        _tableView.dataSource = self;
        
        //注册
        [_tableView registerClass:[XJChildCommentCell class] forCellReuseIdentifier:@"XJChildCommentCellId"];
        
    }
    return _tableView;
}


#pragma mark - 三 布局
#pragma mark - 四 UITableViewDataSource
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return self.childCommentArray.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    XJChildCommentCell *cell = [tableView dequeueReusableCellWithIdentifier:@"XJChildCommentCellId"];
    
    XJTieZiDetailChildCommentModel *model = self.childCommentArray[indexPath.row];
    
    cell.childCommentModel = model;
    
    return cell;
}
// 根据文字长度计算cell 高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    XJTieZiDetailChildCommentModel *model = self.childCommentArray[indexPath.row];
    
    NSString *str = [self commentStrWithModel:model];
    
    CGFloat h = [self heightForStr:str];
    
    return h;
}

#pragma mark - 五 setter 方法
- (void)setChildCommentArray:(NSMutableArray *)childCommentArray{
    _childCommentArray = childCommentArray;
    
    
    CGFloat h =  [self totalHeightOfTableViewWithArray:childCommentArray];
    
    // 设置tableView的高度。
    self.tableView.sd_layout.heightIs(h);
}

#pragma mark - 六 private method

// 1.根据model 返回 评论内容。
- (NSString *)commentStrWithModel:(XJTieZiDetailChildCommentModel *)model {
    NSString *commentStr = nil;
    
    if ([model.level isEqualToString:@"3"]) {
        commentStr = [NSString stringWithFormat:@"%@ 回复 %@:%@ %@",model.nickname,model.target_nickname,model.text,model.publish_time];
    }else {
        commentStr = [NSString stringWithFormat:@"%@:%@ %@",model.target_nickname,model.text,model.publish_time];
    }
    
    return commentStr;
}

// 2.根据文字长度计算 对应的label的高度
- (CGFloat)heightForStr:(NSString *)str {
    CGFloat maxWidth = KWidth - 65;
    
    YYLabel *label = [YYLabel new];
    label.text = str;
    label.font = [UIFont systemFontOfSize:18.0]; // 14.0
    label.numberOfLines = 0;
    
    CGSize size = [label sizeThatFits:CGSizeMake(maxWidth, CGFLOAT_MAX)];
    return size.height;
}


- (CGFloat)totalHeightOfTableViewWithArray:(NSMutableArray *)arr {
    
    // 总高度
    CGFloat totalHeight = 0;
    
    for (int i = 0; i < arr.count; i++) {
        XJTieZiDetailChildCommentModel *model = arr[i];
        
        NSString *str = [self commentStrWithModel:model];
        
        CGFloat h = [self heightForStr:str];
        
        totalHeight += h;
    }
    
//    NSLog(@"总高度是:%f",totalHeight);
    
    return totalHeight;
}

@end
